1. Field of the Invention
The present invention relates to disk drive controllers and, more particularly, to a fault tolerant comparator for comparing disk data to a synchronization pattern in order to identify byte boundaries and establish byte synchronization between a disk drive controller and the disk data.
2. Description of the Related Art
FIG. 1 shows the data path for a typical disk drive. Binary information is recorded on the magnetic surface of the disk 20 as magnetic transitions or flux changes. The flux changes, which form a waveform, are arranged according to a data encoding method which must be decoded to produce the binary data. There are many different data encoding methods that can be used to record binary information on a magnetic media. For example, one method is the non-return-to-zero (NRZ) method in which a one and a zero of the binary data can be identified by an up and a down level in the waveform, respectively. The particular data encoding method that is to be used, however, is not critical to the present invention.
A read channel 22 detects the flux changes on the disk 20 and decodes the waveform into the binary data. The read channel 22 transfers the binary data in a serial fashion to a disk data controller 24. A shift register 26 in the disk data controller 24 receives the serial binary data and converts it to parallel form. This part of the disk data controller 24 is often referred to as the serializer/deserializer (serdes) block. The parallel form of the disk data may be virtually any number of bits wide, e.g., eight, sixteen, twenty-four, etc., depending upon the specific type of disk data controller 24. Ultimately, the disk data controller 24 transfers the parallel binary data to a local memory 28 where it can be utilized by a digital system.
One of the main purposes of the disk data controller 24 is to establish synchronization with the beginning of the disk data. Specifically, long sections of data stored on the disk 20 are normally preceded by a preamble and then a synchronization pattern. The preamble is typically a long string of zeros. The synchronization pattern is a unique combination of ones and zeros which is recognized by the disk data controller 24 to indicate the beginning of the disk data. Although the synchronization pattern may be nearly any number of bits wide, it will be assumed herein that the synchronization pattern is sixteen bits wide. As the read channel 22 transfers the disk data to the disk data controller 24, a synchronization stage 30 within the disk data controller 24 compares the incoming disk data to a copy of the synchronization pattern stored in a register 32. When sixteen bits of the incoming disk data matches or is "aligned" with the synchronization pattern 32, a synchronization signal is generated to indicate the beginning of the data.
It is common for there to be errors in the flux changes recorded on the disk 20. Depending upon the specific data encoding method utilized, it is possible for a missing flux or an incorrectly positioned flux to propagate several bits of error in the binary data produced by the read channel 22. Conventional synchronization pattern alignment techniques for disk read operations are not tolerant of any errors occurring in the disk data. Synchronization pattern alignment is only established by an exact match between the disk data and the synchronization pattern. Any errors in the disk data in the synchronization pattern field will prevent synchronization alignment or cause a shifted alignment to occur. Although there is normally some form of error detection and correction for disk data, such protections do not work for errors in the synchronization field because synchronization has not been established. Because the synchronization pattern field has no error protection, an error in the field can result in the loss of an entire sector of data. Such a loss will reduce the storage capacity of the disk drive.
Thus, there is a need for an apparatus and method for comparing disk data to a synchronization pattern that will permit synchronization to be established even though there are errors in the disk data.